package com.unhz.generator.utils.QINiu;

import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;

import java.io.ByteArrayInputStream;
import java.io.File;

/**
 * @Author: 魏运奇
 * @Description:
 * @Date: Created in 上午 10:50 2018/2/9 0009
 * @Modified By: V1.0.0
 */
public class Upload {

     public static String getUrl(byte[] bytes) {

         //构造一个带指定Zone对象的配置类
         Configuration cfg = new Configuration(Zone.zone2());
//...其他参数参考类注释

         UploadManager uploadManager = new UploadManager(cfg);
         //...生成上传凭证，然后准备上传
         String accessKey = "HbX_Id8SySpIxLiXWIN2wsf1qQuhugUHBbdbE6Nd";
         String secretKey = "-uONCqJ9z6hozeYdlZwmMrlqpilnjn0m7w91xi8n";
         String bucket = "taigu";
         //如果是Windows情况下，格式是 D:\\qiniu\\test.png
        // String localFilePath = fileUrl;
         //默认不指定key的情况下，以文件内容的hash值作为文件名
         String key = null;

         Auth auth = Auth.create(accessKey, secretKey);
         String upToken = auth.uploadToken(bucket);
         //ByteArrayInputStream byteInputStream=new ByteArrayInputStream(bytes);
         try {
             Response response = uploadManager.put(bytes,key,upToken);
             //解析上传成功的结果
             DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
             System.out.println(putRet.key);
             System.out.println(putRet.hash);
             String url="http://p3uzzb8o8.bkt.clouddn.com";
             url=url+ File.separator+putRet.hash;
             return url;  //返回文件存储路径
         } catch (QiniuException ex) {
             Response r = ex.response;
             System.err.println(r.toString());
             try {
                 System.err.println(r.bodyString());
             } catch (QiniuException ex2) {
                 //ignore
             }
         }
         return "";
     }


}
